Skip to content

docs: v0.24.0 UX + 技术审查与优化计划 - #368

Open
oratis wants to merge 1 commit into
mainfrom
claude/project-review-optimization-8b9971
Open

docs: v0.24.0 UX + 技术审查与优化计划#368
oratis wants to merge 1 commit into
mainfrom
claude/project-review-optimization-8b9971

Conversation

@oratis

@oratis oratis commented Sep 6, 2026

Copy link
Copy Markdown
Owner

内容

两份面向 v0.24.0(基线 26266a5,含 #359#367)的全项目审查文档,以及 .codex 认知库的基线同步:

  • docs/PROJECT_REVIEW_UX_v0.24.0.md — 12 条 UX 问题(2 个 P0)、分表面评分、三波次优化计划与度量
  • docs/PROJECT_REVIEW_TECH_v0.24.0.md — 12 条技术问题、v0.21 问题追踪表、验证结果、三波次计划与度量
  • .codex/{README,PROJECT,REVIEW_BASELINE}.md — 2026-09-05 验证表、指向新文档、规模与热点数字更新

核心结论

技术:v0.21 的 P0 安全边界已全部落地;主要矛盾转为可维护性(server.ts 4,188 行、单个请求回调 3,078 行;客户端 4,004 行无类型字符串,+43%)、可靠性(本机实例间歇 5s+ 卡顿,/health 只有 {ok:true})与工程门禁(无 lint / 覆盖率 / Dependabot,PR CI 不覆盖 website/mac/iOS,--no-reflect 在 Web 模式无效)。

UX 两个 P0:

  1. 错 key 后的首次运行死胡同 —— 出生仪式对 401 也重试、原始 JSON 直出、ENTER 只是用同一个错 key 再跑一遍,key 表单再也不出现。
  2. feat(web): 右侧面板默认收起 #367 之后移动端布局失效 —— body.rb-collapsed .frame 特异性高于 720px 媒体查询,375px 下主区仅 75px;展开后功能栏又把聊天视图撑到 681px。

验证(2026-09-05)

检查 结果
typecheck / build 通过
npm test 1,645 个,1,644 通过,1 个 PTY 跳过,0 失败
website / macOS / iOS 12 页 / 通过(14 警告)/ 29 测试通过
npm audit --omit=dev 3 个(v0.21 为 12),均为传递依赖且可修

UX 结论来自真实浏览器实测:从 main 构建,用 soul store API 离线合成已出生的 soul 起临时实例,全程零模型调用。

后续

优化按主题分成独立 PR 陆续提交(Web UI、服务端运行时、工具链/CI/依赖、文档、原生端、CLI、静态资源、Cloud 计费、路由表重构)。

🤖 Generated with Claude Code

两份审查文档(docs/PROJECT_REVIEW_UX_v0.24.0.md、docs/PROJECT_REVIEW_TECH_v0.24.0.md):
- 基线 26266a5(v0.24.0 + #359#367),typecheck/build/test/website/mac/iOS 全部验证通过
- UX:12 条问题(2 个 P0:错 key 后的首次运行死胡同、#367 之后移动端布局失效)+ 三波次计划
- 技术:12 条问题(server.ts 单闭包、客户端字符串、本机实例卡顿与 /health、工程门禁、依赖)+ 三波次计划
- .codex 认知库同步新基线、验证表与规模数字

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant